The present invention relates in general to operating system boot processes, and in particular, to configuring devices attached to a data processing system running the operating system.
During the boot of process for an operating system running on a data processing system, there is a need to discover what devices are attached to the data processing system for various purposes, such as loading device drivers that are necessary to make the devices operational on the operating system side. Such devices include, but are not limited to, hard drives, floppy drives, network cards, disk controllers, PCI buses, PCI cards, devices attached to PCI cards, parallel ports, input/output devices, etc. This process is accomplished through a configuration method, which may occur during the boot-up process or even later from initiation by an entered command.
The foregoing configuration method will assign names to devices as they are detected. Device names are used by users and software to access the device. When there are several devices of the same type that receive similar names, users like to be able to easily correlate the assigned device names to the actual devices. For example, suppose a computer system has three SCSI hard drives attached to it. AIX will name them hdisk0, hdisk1, and hdisk2. Which drive gets which name depends a lot on how the drives are attached to the system, for example, are they attached to different SCSI controllers and what SCSI ID is used for each drive. But given that they are attached in a particular way, users know that AIX will always assign the same name to each drive. Prior to this invention, the names are always assigned the same because the configure methods are always run serially in the same order. This is desired because users wish to know that with two identical systems with devices attached in exactly the same way, that the device names will be assigned exactly the same each time the devices are configured.
Therefore, there is a need in the art for a configuration naming process that assigns names to attached devices in a consistent and predictable manner, while still permitting the configuration processes to operate in parallel.
The present invention addresses the foregoing need by permitting the device configuration processes to be run simultaneously (parallel) up until one or more detect new devices. Once that occurs, configuration waits for currently running processes to complete without starting new ones, and then re-runs the configuration processes needing to define new devices in the order they would have run if the entire operation had been performed serially.
An advantage of the present invention is that most configuration processes will not be detecting new devices, and so will run all the way to completion in parallel with others, thereby reducing system boot times. However, if a new device is discovered, it will be assigned the correct name with respect to the other devices.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.